const express = require("express");

const multer = require('multer');

const path = require("path");

// 设置上传文件的存储目录 上传之前目录必须存在
// const upload = multer({ dest: 'static/upload' }); // 使用默认存储方式（后缀名会被删掉）

// 设置上传文件的存储方式 这里使用了diskStorage来指定存储目录和文件名
const storage = multer.diskStorage({
    // 设置文件存储目录
    // 注意：如果目录不存在，multer会自动创建目录
    destination: function (req, file, cb) {
        cb(null, "static/upload") // 这里可以修改为你想要的目录，例如：'static/upload'
        // cb(null, 'static/upload') // 如果想要存储到项目的静态目录下，可以使用这个
        // 注意：如果使用了相对路径，目录必须存在，否则会报错
    },
    // 设置文件名
    // 注意：如果不设置文件名，multer会自动生成一个随机的文件
    filename: function (req, file, cb) {
        // 获取文件的扩展名
        const extname = path.extname(file.originalname); // 获取文件的扩展名
        // 设置文件名为：原始文件名-时间戳.扩展名
        // 例如：file-1634567890123.jpg
        cb(null, `${file.fieldname}-${Date.now()}${extname}`); // 这里可以修改为你想要的文件名格式
    }
})

const upload = multer({ storage: storage })

var router = express.Router();

router.get("/", (req, res) => {
    res.send("导航列表");
})

router.get("/add", (req, res) => {
    res.render("admin/nav/add", { title: "添加导航" });
})

router.get("/edit", (req, res) => {
    res.send("修改导航");
})

router.post("/doAdd", upload.single("pic"), (req, res) => {
    // req.body 获取post传值
    // 注意：如果使用了body-parser中间件，req.body可以直接获取post传值
    // 如果没有使用body-parser中间件，则需要使用express的内置中间件express.urlencoded()来解析post请求体
    // 例如：app.use(express.urlencoded({ extended: false }));
    let body = req.body;
    res.send({
        body: body,
        file: req.file // 上传的文件信息
    });
})

router.post("/doEdit", (req, res) => {
    res.send("执行修改");
})

module.exports = router